/** * */ package net.conselldemallorca.helium.webapp.v3.helper; import net.conselldemallorca.helium.core.model.hibernate.Camp; import net.conselldemallorca.helium.core.model.hibernate.CampRegistre; import net.conselldemallorca.helium.core.model.service.DissenyService; import org.apache.commons.beanutils.PropertyUtils; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; /** * Validador per als formularis dels registres * * @author Limit Tecnologies <limit@limit.es> */ public class CommonRegistreHelper implements Validator { private DissenyService dissenyService; public CommonRegistreHelper(DissenyService dissenyService) { this.dissenyService = dissenyService; } @SuppressWarnings({ "unchecked", "rawtypes" }) public boolean supports(Class clazz) { return clazz.isAssignableFrom(Object.class); } public void validate(Object command, Errors errors) { try { Long registreId = (Long)PropertyUtils.getSimpleProperty(command, "registreId"); Camp camp = dissenyService.getCampById(registreId); for (CampRegistre campRegistre: camp.getRegistreMembres()) { if (campRegistre.isObligatori()) ValidationUtils.rejectIfEmpty(errors, campRegistre.getMembre().getCodi(), "not.blank"); } } catch (Exception ex) { errors.reject("error.validator"); } } }